package demo5;

public class Test {
    public static void main(String[] args) {
        Outer08 outer08 = new Outer08();
        outer08.f1();
        //外部其他类访问成员内部类的方法
        //1.new Inner()当做一个成员使用
        Outer08.Inner inner08 = new Outer08.Inner();
        inner08.test();
        //2.在外部类写函数，返回成员内部类实例
        Outer08.Inner inner = outer08.get();
        inner.test();

        Outer08.Inner inner1 = Outer08.get_();
        inner1.test();
    }
}
 class Outer08{
    private int number1 = 10;
    public static String name = "Tom";
    private static void hi(){
        System.out.println("hi方法");
    }
    //成员内部类定义在这个外部类的成员位置上
    static class Inner{
        public void test(){
            System.out.println("这个是成员内部类"+name);
            //System.out.println(number1);静态内部类不可以访问非静态的成员变量number1
            hi();
        }
    }
    public Inner get(){
        return new Inner();
    }

     public static Inner get_(){
         return new Inner();
     }

    public void f1(){
        Outer08.Inner inner = new Outer08.Inner();
        inner.test();
    }


}
